A computer network is a collection of interconnected computing devices that can exchange data and share resources. In a packet-based network, such as an Ethernet network, the computing devices communicate data by dividing the data into small blocks called packets, which are individually routed across the network from a source device to a destination device. A variety of intermediate devices operate to route the packets between the computing devices. For example, a computer network may include routers, switches, gateways, firewalls, and a variety of other devices to provide and facilitate network communication.
These network devices typically include mechanisms, such as management interfaces, for locally or remotely configuring the devices. By interacting with the management interface, various clients, such as human users, automated scripts or network management systems, can perform configuration tasks as well as collect and view operational data of the managed devices. For example, the clients may configure interface cards of the device, adjust parameters for supported network protocols, specify physical components within the device, modify routing information maintained by a router, access software modules and other resources residing on the device, and perform other configuration tasks. In addition, the clients may receive information either by polling the managed device or by receiving asynchronous events from the devices. In this way, the management interfaces of the managed device may be used to access current operating parameters, system logs, information related to network connectivity, network activity or other status information for the devices, allowing clients to view and react to event information received from the devices.
In some cases, a network management system (NMS) device may manage multiple devices of different types, e.g., from different vendors. Vendors often provide different protocols for managing similar types of devices. For example, different vendors of routers may offer different protocols for configuring services performed by the routers. Typically, the NMS device will be configured with specific configuration schemas (e.g., specified in a data modeling language such as YANG) for devices to be managed from each of the vendors.
Network configuration services may be performed by multiple distinct devices, such as routers with service cards and/or dedicated service devices. Such services include connectivity services such as Layer Three Virtual Private Network (L3VPN), Virtual Private Local Area Network Service (VPLS), and Peer to Peer (P2P) services. Other services include network configuration services, such as Dot1q VLAN Service. In order to configure new devices to support network services provided in a network system, a user (such as an administrator) a translation template to map a vendor neutral model to a device specific model. Further, in order to configure devices to perform new types of services, a user (such as an administrator) needs to provide a service model that defines the new types of services as well as a mapping file to map the service model to a device configuration model. As each different vendor requires a unique translation template such that, as new devices from different vendors are added to the network, the user/administrator has to generate new translation templates to enable the NMS to support the new devices.